// PROGRAMA : IDCPA001
// PROGRAMA : IDCPA001
// PROGRAMA : IDCPA001
// SISTEMA : SISP - MODULO ID. CIVIL
// SISTEMA : SISP - MODULO ID. CIVIL
// SISTEMA : SISP - MODULO ID. CIVIL
// CLIENTE : SEGUP
// CLIENTE : SEGUP
// CLIENTE : SEGUP
// PROGRAMADOR : EDU/FM DATA: 15/06/92
// PROGRAMADOR : EDU/FM DATA: 15/06/92
// PROGRAMADOR : EDU/FM DATA: 15/06/92
// OBJETIVO : ATUALIZA CADASTRO. AIC
// OBJETIVO : ATUALIZA CADASTRO. AIC
// OBJETIVO : ATUALIZA CADASTRO. AIC
// ATUALIZACOES
// ATUALIZACOES
// ATUALIZACOES
// RESPONSAVEL DATA
// RESPONSAVEL DATA
// RESPONSAVEL DATA
// X-X 99/99/99
// X-X 99/99/99
// X-X 99/99/99
package br.com.vti.sisp_sicrim.antigo.controller.programa;

import java.util.Arrays;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaa01B;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaa01C;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcpaa01D;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta000;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta000B;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta001;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idcta002;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Idctha01;
import br.com.vti.sisp_sicrim.antigo.model.DidCadastro;
import br.com.vti.sisp_sicrim.antigo.model.DidHistorico;
import br.com.vti.sisp_sicrim.antigo.model.Estla001;
import br.com.vti.sisp_sicrim.antigo.model.Idcla001;
import br.com.vti.sisp_sicrim.antigo.model.SicTabelas;
import br.com.vti.sisp_sicrim.antigo.model.Sislac01;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;
import br.com.vti.sisp_sicrim.antigo.util.Sisgsisp;
import br.com.vti.sisp_sicrim.antigo.util.UtilBean;

/**
 * Classe : Idcpaa01 OBJETIVO : ATUALIZA CADASTRO. AIC *
 * 
 * @author Incode - Data: mai/2014
 * 
 */

public class Idcpaa01 {
	// Views utilizadas
	DidCadastro vwDidcad = new DidCadastro();
	DidHistorico vwDidhis = new DidHistorico();
	SicTabelas dvetabVw = new SicTabelas();
	SicTabelas vwTabele = new SicTabelas();
	DidCadastro viu1 = new DidCadastro();
	// Telas/relatorios utilizados
	Idcpaa01B idcpaa01B;
	Idcpaa01C idcpaa01C;
	Idcpaa01D idcpaa01D;
	Idcta000 idcta000;
	Idcta000B idcta000B;
	Idcta001 idcta001;
	Idcta002 idcta002;
	Idctha01 idctha01;
	// Includes utilizados
	Estla001 estla001 = new Estla001();
	Idcla001 idcla001 = new Idcla001();
	Sislac01 sislac01 = new Sislac01();
	// Areas globais / session
	Sisgsisp sisgsisp;
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	Idcpaa01 idcpaa01Anterior;
	String faseproc = "0";

	private int dv1 = 0;
	private String pais = "";
	private int dtat = 0;
	private int datatu = 0;
	private String chave = "";
	private int i = 0;
	private String[][] dedos = new String[6][3];
	private String[][] dedot = new String[6][3];
	private String isn = "";
	private String uf = "";
	private String chalf = "";
	private int num = 0;
	private int datn = 0;
	private int j = 0;
	private int codpesq = 0;
	private int matesp = 0;

	private Idcta000 preMapas() {
		idcpaa01B = new Idcpaa01B(true, sessao);
		idcpaa01C = new Idcpaa01C(true, sessao);
		idcpaa01D = new Idcpaa01D(true, sessao);
		idcta000 = new Idcta000(true, sessao);
		idcta000B = new Idcta000B(true, sessao);
		idcta001 = new Idcta001(true, sessao);
		idcta002 = new Idcta002(true, sessao);
		idctha01 = new Idctha01(true, sessao);
		Arrays.fill(dedot, "");
		idcta000.setMensagemSaida("INFORME OS DADOS ACIME P/ATUALIZAR");
		datn = UtilBean.obtemDataCorrente();
		estla001.qde = 1;
		estla001.esttip = 99;
		// Par�grafo: r0()
		return idcta000;
	}

	public Idcpaa01(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar(Idcpaa01B idcpaa01B, Idcpaa01C idcpaa01C, Idcpaa01D idcpaa01D, Idcta000 idcta000, Idcta000B idcta000B, Idcta001 idcta001, Idcta002 idcta002, Idctha01 idctha01) {
		try {
			main(idcpaa01B, idcpaa01C, idcpaa01D, idcta000, idcta000B, idcta001, idcta002, idctha01);
		} catch (Exception e) {
			ExceptionProgram excp = new ExceptionProgram();
			excp.trataErroSiscerro(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main(Idcpaa01B pidcpaa01B, Idcpaa01C pidcpaa01C, Idcpaa01D pidcpaa01D, Idcta000 pidcta000, Idcta000B pidcta000B, Idcta001 pidcta001, Idcta002 pidcta002, Idctha01 pidctha01) throws Exception {
		if (pidcpaa01B == null && pidcpaa01C == null && pidcpaa01D == null && pidcta000 == null && pidcta000B == null && pidcta001 == null && pidcta002 == null && pidctha01 == null) {
			primeiraVez = true;
			// idcta000 = new Idcta000 (primeiraVez);
			idcta000 = preMapas();
			idcta000.setNavegar("../idcpaa01/executar");
			result.include("idcta000", idcta000);
			sessao.setAtributo("IDCPAA01", this);
			idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return;
		} else {
			restaurarEstados(pidcpaa01B, pidcpaa01C, pidcpaa01D, pidcta000, pidcta000B, pidcta001, pidcta002, pidctha01);
		}

		if (!UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			chave = "";
			for (int i1 = 1; i1 <= 0; i1++) {
				for (int i2 = 1; i2 <= 0; i1++) {
					dedos[i1][i2] = "";
				}
			}
			for (int i1 = 1; i1 <= 5; i1++) {
				for (int i2 = 1; i2 <= 2; i1++) {
					dedot[i1][i2] = "";
				}
			}
			estla001.cpo = 0;
			// idcG = "";
			pais = "";
			matesp = 0;
		}

		if (pidcta000 != null) {
			idcta000.receberTela(false, result);
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			idcta000.setMensagemSaida("TRANSACAO CANCELADA");
			result.include("idcta000", idcta000);
			sessao.setAtributo("IDCPAA01", this);
			idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			return;
		}
		if (idcta001.getIregger() > 0) {
			if (idcta001.getIregger() > 250000000 && idcta001.getIregger() < 251672941) {

				dv1 = funcoes.idcndig1((int) idcta000.getIregger());
				if (dv1 != UtilBean.extraiDigitos(idcla001.iRegger, 12, 12, 1)) {
					dv1 = funcoes.idcndig((int) idcta000.getIregger());
					if (dv1 != UtilBean.extraiDigitos(idcla001.iRegger, 12, 12, 1)) {
						idcta000.enviarMensagem("iRegger", "");
						return;
					}
				}
			} else {
				dv1 = funcoes.idcndig((int) idcta000.getIregger());
				if (dv1 != UtilBean.extraiDigitos(idcta000.getIregger(), 12, 12, 1)) {
					idcta000.enviarMensagem("iRegger", "");
					return;
				}
			}
			vwDidcad.consultaNumeroRg(idcta000.getIregger());
			isn = vwDidcad.getId(); // *ISN(0570);
			idcta002.setChave("A");
			estla001.cpo = 2;
			if (!mostrar1(pidcpaa01C, pidcpaa01D, pidcta001, pidcta002, pidctha01)) {
				return;
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAA01", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (idcpaa01C.getOp3().equals("N")) {
				idcpaa01C.setMensagemSaida("REGISTRO ALTERADO OK.");
				vwDidcad.pesquisaPorId();
				mover();
				vwDidcad.atualiza();
				// dao.commit();
			}
			historico();

			if (vwDidcad.registrosProcessados() == 0) {
				idcta000.enviarMensagem("iRegger", "");
				return;
			}
		} else {
			if (idcla001.nom0[1].trim().equals("")) {
				idcta000.enviarMensagem(null, "INFORME NOME CORRETAMENTE");
				return;
			}

			if (!idcpaa01B.getEnviada()) {
				result.include("idcpaa01B", idcpaa01B);
				sessao.setAtributo("IDCPAA01", this);
				idcpaa01B.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (pidcpaa01B != null) {
				idcpaa01B.receberTela(false, result);
			}
			// IDCPAA01
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna) || idcpaa01B.getConfr().equals("N")) {
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAA01", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			if (!(idcpaa01B.getConfr().equals("S") || idcpaa01B.getConfr().equals("N"))) {
				idcpaa01B.enviarMensagem(null, "INFORME �S� SIM OU �N� NAO");
				return;
			}
			estla001.cpo = 1;
			sessao.getSisgsisp().setMens("OPCAO A SER EFETUADA - INCLUSAO");
			idcta002.setChave("I");
			// idcta002.setChave(208) ;
			// idcta002.setChave(92001) ;

			idcta000.receberTela(false, result);
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				idcta000.setMensagemSaida("INCLUSAO NAO EFETUADA");
				result.include("idcta000", idcta000);
				sessao.setAtributo("IDCPAA01", this);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return;
			}
			telas(pidcta001, pidcta002, pidctha01);
			dvetabVw.consultaTabele(208, (long) 92001);

			chalf = dvetabVw.getChaveAlfaAcesso();
			num += 1;

			dvetabVw.setChaveAlfaAcesso(chalf);
			dvetabVw.atualiza();
			// dao.commit();

			// dao.rollback();
			idcla001.iRegger = Long.parseLong(UtilBean.moveSubstring("", 0, 12, "N", num * 100 + UtilBean.extraiDigitos(idcla001.iDatdoc, 8, 1, 2)));
			dv1 = funcoes.idcndig((int) idcta000.getIregger());
			idcla001.iRegger = Long.parseLong(UtilBean.moveSubstring(idcla001.iRegger, 12, 1, "N", dv1));
			mover();
			vwDidcad.grava();
			// dao.commit();
			idcta000.setMensagemSaida("REGISTRO INCLUIDO OK. ");
		}
		// dao.rollback();
		idcla001.iDatnat = 0;
		idcla001.iDatnas = 0;
		idcla001.iDatexp = 0;
		idcla001.iDatdoc = 0;
		if (!UtilBean.funcao.equals(UtilBean.ctt_retorna)) {

			funcoes.estna001(estla001.cpo, estla001.esttip, estla001.qde, sessao.getSisgsisp().getVar(), idcpaa01C.getMatric());
		}
		sessao.setAtributo("IDCPAA01", this);
		result.include("idcta000", idcta000);
		idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
	}

	private boolean mostrar1(Idcpaa01C pidcpaa01C, Idcpaa01D pidcpaa01D, Idcta001 pidcta001, Idcta002 pidcta002, Idctha01 pidctha01) throws Exception {
		idcta001.setMensagemSaida("OPCAO A SER EFETUADA - ALTERACAO OU BAIXA");
		idcta001.setInumpro(vwDidcad.getNumeroProtocolo());
		idcta001.setInumpos(vwDidcad.getNumeroPosto());
		idcta000.setInomide(vwDidcad.getNomeIdent());
		idcta001.setInompai(vwDidcad.getNomePai());
		idcta000.setInommae(vwDidcad.getNomeMae());
		idcta002.setIregger(vwDidcad.getNumeroRg());
		idcta001.setIregant(vwDidcad.getRegistroAnterior());
		idcla001.iDatnas = vwDidcad.getDataNasc();
		idcta001.setInumcpf(vwDidcad.getNumeroCpf());
		idcta002.setImicrof(vwDidcad.getCodigoMicrofilme());
		idcta002.setInumvia(vwDidcad.getNumeroVia());
		idcta001.setIufrant(vwDidcad.getUfRegAnterior());
		idcta001.setIestciv(vwDidcad.getEstadoCivil());
		idcta001.setInacion(vwDidcad.getNacionalidadeIdent());
		idcta001.setIcomuna(vwDidcad.getNomeMunicipioIdent());
		idcla001.iUfnasc = vwDidcad.getUfMunicipioNasc();
		idcta001.setIcodsex(vwDidcad.getCodigoSexo());
		idcta002.setIpispas(vwDidcad.getNumeroPisPasep());
		idcta001.setItipdoc(vwDidcad.getTipoDocumento());
		idcla001.iDatexp = vwDidcad.getDataExp();
		idcta001.setIcomuex(vwDidcad.getCodigoMunicipioExp());
		idcla001.iUfexpe = vwDidcad.getUfMunicipioExp();
		idcta001.setIcartra(vwDidcad.getNumeroCartTrab());
		idcta001.setInserie(vwDidcad.getNumeroSerieCart());
		idcta001.setItitele(vwDidcad.getNumeroTituloEleitor());
		idcta001.setIuftitu(vwDidcad.getUfTituloEleitor());
		idcta001.setInuzona(vwDidcad.getZonaEleitoral());
		idcta001.setIcermil(vwDidcad.getNumeroCertificado());
		idcta001.setIprtcnh(vwDidcad.getNumeroProntuarioCnh());
		idcta001.setIufpcnh(vwDidcad.getUfCnh());
		idcta001.setItipsan(vwDidcad.getTipoSangue());
		idcta001.setIfatorh(vwDidcad.getFatorRh());
		idcta001.setIcodcep(vwDidcad.getCodigoCep());
		idcta001.setIcomuen(vwDidcad.getCodigoMunicipio());
		idcla001.iUfmure = vwDidcad.getUfMunicipio();
		idcla001.iCodpro = vwDidcad.getCodigoProfissao();
		idcta002.setIcodcut(vwDidcad.getCodigoCutis());
		idcta002.setIaltura(vwDidcad.getAlturaIdent());
		idcta002.setIcorolh(vwDidcad.getCodigoCorOlhos());
		idcta002.setIcorcab(vwDidcad.getCodigoCorCabelo());
		idcta002.setItipcab(vwDidcad.getCodigoTipoCabelo());
		idcta002.setIcodano(vwDidcad.getCodigoAnomalia());
		idcta002.setImatfua(vwDidcad.getMatriculaFuncionario());
		idcla001.iDatdoc = vwDidcad.getDataDocumento();
		idcta001.setIregiao(vwDidcad.getRegiaoMilitar());
		idcta001.setInsecao(vwDidcad.getNumeroSecao());
		idcta001.setInumres(vwDidcad.getNumeroResidencia());
		idcta001.setIzonaof(vwDidcad.getZonaOficio());
		idcta001.setIvcivil(vwDidcad.getVaraCivil());
		idcta001.setInumliv(vwDidcad.getNumeroLivro());
		idcta001.setInumfol(vwDidcad.getNumeroFolha());
		idcta001.setInumcer(vwDidcad.getNumeroCertidao());
		idcta001.setInomcar(vwDidcad.getNomeCartorio());
		idcta001.setIcomple(vwDidcad.getComplementoEndereco());
		idcta001.setIbairro(vwDidcad.getNomeBairro());
		idcta002.setIsinpar(vwDidcad.getSinaisParticulares());
		idcta001.setIendere(vwDidcad.getEnderecoIdent());
		idcta001.setInomant(vwDidcad.getNomeAnterior());
		idcta001.setInumpor(vwDidcad.getNumeroPortariaMinist());
		idcta001.setIanopor(vwDidcad.getAnoPortariaMinist());
		idcta001.setIcodpor(vwDidcad.getPaisOrigem());
		idcla001.iDatnat = vwDidcad.getDataNaturalizacao();
		idcta002.setIobserv(vwDidcad.getObservacaoAdocao());
		idcta002.setIregger(vwDidcad.getNumeroRg());
		idcla001.iDatexp = vwDidcad.getDataExp();
		idcta001.setIordens(vwDidcad.getNumeroOrdem());
		idcta000.setDedos(1, 1, vwDidcad.getPolegarDireito());
		idcta000.setDedos(2, 1, vwDidcad.getIndicadorDireito());
		idcta000.setDedos(3, 1, vwDidcad.getMedioDireito());
		idcta000.setDedos(4, 1, vwDidcad.getAnularDireito());
		idcta000.setDedos(5, 1, vwDidcad.getMinimoDireito());
		idcta000.setDedos(1, 2, vwDidcad.getPolegarEsquerdo());
		idcta000.setDedos(2, 2, vwDidcad.getIndicadorEsquerdo());
		idcta000.setDedos(3, 2, vwDidcad.getMedioEsquerdo());
		idcta000.setDedos(4, 2, vwDidcad.getAnularEsquerdo());
		idcta000.setDedos(5, 2, vwDidcad.getMinimoEsquerdo());
		dedot = idcta000.getDedos();

		idcta000.setMensagemSaida("TECLE ENTRA P/ATUAL. REG. OU UtilBean.ctt_proxima) P/DELETAR");

		idcta000.receberTela(false, result);
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			return false;
		}

		idcpaa01C.setOp3("N");
		if (UtilBean.funcao.equals(UtilBean.ctt_proxima)) {

			if (!idcpaa01C.getEnviada()) {
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcta000", idcta000);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (pidcpaa01C != null) {
				idcpaa01C.receberTela(false, result);
			}
			if (!(idcpaa01C.getOp3().equals("S") || idcpaa01C.getOp3().equals("N"))) {
				idcpaa01C.enviarMensagem(null, "INFORME �S� OU �N� ");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (idcpaa01C.getOp3().equals("N") || UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			funcoes.tabsatu(sessao);
			if (!funcoes.camret.equals("")) {
				idcta000.enviarMensagem(funcoes.camret, "");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (idcpaa01D.getMatesp() != 9996) {
				idcta000.enviarMensagem("matesp", "OPERACAO SO PERMITIDA AO COORDENADOR'-' DO INSTITUTO");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 18);
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcpaa01D.getMatesp());
			vwTabele.consultaTabele(18, (long) idcpaa01D.getMatesp());
			// 465
			if (vwTabele.getChaveAlfaAcesso() != idcpaa01D.getSenesp()) {
				idcta000.enviarMensagem("senesp", "");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			sislac01.niveis = dvetabVw.getDescricaoElem();
			if (!(UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("7"))) {
				idcta000.enviarMensagem("senesp", "");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}

			if (vwTabele.registrosProcessados() == 0) {
				idcta000.enviarMensagem("matesp", "");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 210);
			vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcpaa01C.getMotbai());
			vwTabele.consultaTabele(210, (long) idcpaa01C.getMotbai());
			// 473
			if (vwTabele.totalRegistros() == 0) {
				idcta000.enviarMensagem("motbai", "MOTIVO BAIXA NAO CADASTRADO");
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcpaa01C", idcpaa01C);
				idcpaa01C.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}

			estla001.cpo = 4;
			historico();
			vwDidcad.pesquisaPorId();
			vwDidcad.exclui();
			// dao.commit();
			idcta000.setMensagemSaida("REGISTRO DELETADO OK");
			return true;
		}
		// Par�grafo: x1()
		for (i = 1; i <= 2; i++) {
			for (j = 1; j <= 5; j++) {
				if (idcta000.getDedos(j, i) != dedot[j][i] && idcpaa01D.getMatesp() == 0) {

					idcpaa01D.setMensagemSaida("SENHA ESPECIAL P/MUDAR A F.DAT.");
					if (!idcpaa01D.getEnviada()) {
						sessao.setAtributo("IDCPAA01", this);
						result.include("idcpaa01D", idcpaa01D);
						idcpaa01D.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
						return false;
					}
					if (pidcpaa01D != null) {
						idcpaa01D.receberTela(false, result);
					}
					if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
						Idcpa001 idcpa001 = new Idcpa001(result, sessao);
						idcpa001.executar(null, null, null, null, null, null, null, null, null, null);
					}
					especial();
				}
			}
		}
		return telas(pidcta001, pidcta002, pidctha01);
	} // if (UtilBean.funcao.equals(UtilBean.ctt_retorna))
		// {
		// continue;
		// }

	private void mover() {
		if (vwDidcad.getDataAtualizacao() > 0) {
			dtat = vwDidcad.getDataAtualizacao();
		}
		vwDidcad.setDataAtualizacao(UtilBean.obtemDataCorrente());
		vwDidcad.setNumeroRg(idcta001.getIregger());
		vwDidcad.setNomeMae(idcta000.getInommae());
		vwDidcad.setNomeIdent(idcta000.getInomide());
		vwDidcad.setDataExp(idcla001.iDatexp);
		vwDidcad.setDataNaturalizacao(idcla001.iDatnat);
		vwDidcad.setDataNasc(idcla001.iDatnas);
		vwDidcad.setDataDocumento(idcla001.iDatdoc);
		vwDidcad.setNomePai(idcta001.getInompai());
		vwDidcad.setNumeroPosto(idcta001.getInumpos());
		vwDidcad.setNomePai(idcta001.getInompai());
		vwDidcad.setNumeroPosto(idcta001.getInumpos());
		vwDidcad.setRegistroAnterior(idcta001.getIregant());
		vwDidcad.setNumeroProtocolo(idcta001.getInumpro());
		vwDidcad.setNumeroCpf(idcta001.getInumcpf());
		vwDidcad.setCodigoMicrofilme(idcta002.getImicrof());
		if (idcta001.getIordens() == 9) {
			estla001.cpo = 3;
		}
		vwDidcad.setNumeroVia(idcta002.getInumvia());
		vwDidcad.setUfRegAnterior(idcta001.getIufrant());
		vwDidcad.setEstadoCivil(idcta001.getIestciv());
		vwDidcad.setNacionalidadeIdent(idcta001.getInacion());
		vwDidcad.setNomeMunicipioIdent(idcta001.getIcomuna());
		if (idcta001.getIcomuna() > 180 || idcta001.getInacion() == 1) {
			codpesq = idcta001.getIcomuna();
			uf();
			idcla001.iUfnasc = uf;

			vwDidcad.setUfMunicipioNasc(idcla001.iUfnasc);
		}
		vwDidcad.setCodigoSexo(idcta001.getIcodsex());
		vwDidcad.setNumeroPisPasep(idcta002.getIpispas());
		vwDidcad.setTipoDocumento(idcta001.getItipdoc());
		vwDidcad.setCodigoMunicipioExp(idcta001.getIcomuex());
		codpesq = idcta001.getIcomuex();
		uf();
		idcla001.iUfexpe = uf;
		vwDidcad.setUfMunicipioExp(idcla001.iUfexpe);
		vwDidcad.setNumeroCartTrab(idcta001.getIcartra());
		vwDidcad.setNumeroSerieCart(idcta001.getInserie());
		vwDidcad.setNumeroTituloEleitor(idcta001.getItitele());
		vwDidcad.setUfTituloEleitor(idcta001.getIuftitu());
		vwDidcad.setZonaEleitoral(idcta001.getInuzona());
		vwDidcad.setNumeroCertificado(idcta001.getIcermil());
		vwDidcad.setNumeroProntuarioCnh(idcta001.getIprtcnh());
		vwDidcad.setUfCnh(idcta001.getIufpcnh());
		vwDidcad.setTipoSangue(idcta001.getItipsan());
		vwDidcad.setFatorRh(idcta001.getIfatorh());
		vwDidcad.setCodigoCep(idcta001.getIcodcep());
		codpesq = idcta001.getIcomuen();
		uf();
		idcla001.iUfmure = uf;
		vwDidcad.setCodigoMunicipio(idcta001.getIcomuen());
		vwDidcad.setUfMunicipio(idcla001.iUfmure);
		vwDidcad.setCodigoProfissao(idcta002.getIcodpro());
		vwDidcad.setCodigoCutis(idcta002.getIcodcut());
		vwDidcad.setAlturaIdent(idcta002.getIaltura());
		vwDidcad.setCodigoCorOlhos(idcta002.getIcorolh());
		vwDidcad.setCodigoCorCabelo(idcta002.getIcorcab());
		vwDidcad.setCodigoTipoCabelo(idcta002.getItipcab());
		vwDidcad.setCodigoAnomalia(idcta002.getIcodano());
		vwDidcad.setMatriculaFuncionario(idcta002.getImatfua());
		vwDidcad.setRegiaoMilitar(idcta001.getIregiao());
		vwDidcad.setNumeroSecao(idcta001.getInsecao());
		vwDidcad.setNumeroResidencia(idcta001.getInumres());
		vwDidcad.setZonaOficio(idcta001.getIzonaof());
		vwDidcad.setVaraCivil(idcta001.getIvcivil());
		vwDidcad.setNumeroLivro(idcta001.getInumliv());
		vwDidcad.setNumeroFolha(idcta001.getInumfol());
		vwDidcad.setNumeroCertidao(idcta001.getInumcer());
		vwDidcad.setNomeCartorio(idcta001.getInomcar());
		vwDidcad.setComplementoEndereco(idcta001.getIcomple());
		vwDidcad.setNomeBairro(idcta001.getIbairro());
		vwDidcad.setSinaisParticulares(idcta002.getIsinpar());
		vwDidcad.setEnderecoIdent(idcta001.getIendere());
		vwDidcad.setNomeAnterior(idcta001.getInomant());
		vwDidcad.setNumeroPortariaMinist(idcta001.getInumpor());
		vwDidcad.setAnoPortariaMinist(idcta001.getIanopor());
		vwDidcad.setPaisOrigem(idcta001.getIcodpor());
		vwDidcad.setObservacaoAdocao(idcta002.getIobserv());
		vwDidcad.setNumeroOrdem(idcta001.getIordens());
		vwDidcad.setMatriculaFunc(sessao.getSisgsisp().getMatric());
		vwDidcad.setPolegarDireito(idcta000.getDedos(1, 1));
		vwDidcad.setIndicadorDireito(idcta002.getDedos(2, 1));
		vwDidcad.setMedioDireito(idcta000.getDedos(3, 1));
		vwDidcad.setAnularDireito(idcta000.getDedos(4, 1));
		vwDidcad.setMinimoDireito(idcta000.getDedos(5, 1));
		vwDidcad.setPolegarEsquerdo(idcta000.getDedos(1, 2));
		vwDidcad.setIndicadorEsquerdo(idcta000.getDedos(2, 2));
		vwDidcad.setMedioEsquerdo(idcta000.getDedos(3, 2));
		vwDidcad.setAnularEsquerdo(idcta000.getDedos(4, 2));
		vwDidcad.setMinimoEsquerdo(idcta000.getDedos(5, 2));
		// FIND VW-DIDHIS WITH DINHID-REGGER = I-REGGER &&

		vwDidcad.setMatEsp(idcta000B.getMatesp());
	} // DINHID-DATATU = DATATU && DINHID-MATRHI = MATRIC
		// IF NO RECORDS

	private void historico() {
		datatu = UtilBean.obtemDataCorrente();
		// FIND VW-DIDHIS WITH DINHID-REGGER = I-REGGER &&
		// FIND VW-DIDHIS WITH DINHID-REGGER = I-REGGER &&
		// DINHID-DATATU = DATATU && DINHID-MATRHI = MATRIC
		// DINHID-DATATU = DATATU && DINHID-MATRHI = MATRIC

		vwDidhis.setNumeroPosto(idcta001.getInumpos());
		// IF NO RECORDS
		// IF NO RECORDS

		vwDidhis.setNumeroRg(vwDidcad.getNumeroRg());
		vwDidhis.setNomeIdent(vwDidcad.getNomeIdent());
		vwDidhis.setNomePai(vwDidcad.getNomePai());
		vwDidhis.setNomeMae(vwDidcad.getNomeMae());
		vwDidhis.setEstadoCivil(vwDidcad.getEstadoCivil());
		vwDidhis.setNacionalidade(vwDidcad.getNacionalidadeIdent());
		vwDidhis.setNumeroCpf(vwDidcad.getNumeroCpf());
		vwDidhis.setMatriculaFunc(vwDidcad.getMatriculaFuncionario());
		vwDidhis.setCodigoAnomalia(vwDidcad.getCodigoAnomalia());
		vwDidhis.setNumeroProtocolo(vwDidcad.getNumeroProtocolo());
		vwDidhis.setPolegarDireito(vwDidcad.getPolegarDireito());
		vwDidhis.setIndicadorDireito(vwDidcad.getIndicadorDireito());
		vwDidhis.setMedioDireito(vwDidcad.getMedioDireito());
		vwDidhis.setAnularDireito(vwDidcad.getAnularDireito());
		vwDidhis.setMinimoDireito(vwDidcad.getMinimoDireito());
		vwDidhis.setPolegarEsquerdo(vwDidcad.getPolegarEsquerdo());
		vwDidhis.setIndicadorEsquerdo(vwDidcad.getIndicadorEsquerdo());
		vwDidhis.setMedioEsquerdo(vwDidcad.getMedioEsquerdo());
		vwDidhis.setAnularEsquerdo(vwDidcad.getAnularEsquerdo());
		vwDidhis.setMinimoEsquerdo(vwDidcad.getMinimoEsquerdo());
		vwDidhis.setDataNasc(vwDidcad.getDataNasc());
		vwDidhis.setDataInclusao(UtilBean.obtemDataCorrente());
		vwDidhis.setMatriculaInclusao(sessao.getSisgsisp().getMatric());
		vwDidhis.setMatesp(idcta000B.getMatesp());
		vwDidhis.setDataAtualizacao(dtat);
		// END-NOREC
		if (idcpaa01C.getOp3().equals("S"))
		// END-FIND
		{

			vwDidhis.setDataBaixa(UtilBean.obtemDataCorrente());
			vwDidhis.setCodigoMotivoBaixa(idcpaa01C.getMotbai());
		}
		vwDidhis.grava();
		// dao.commit();
	} // END-NOREC
		// END-NOREC
		// END-FIND
		// END-FIND

	private void especial() {
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 0, 3, "N", 18);
		vwTabele.pesq = UtilBean.moveSubstring(vwTabele.pesq, 3, 12, "N", idcpaa01D.getMatesp());
		vwTabele.consultaTabele(18, (long) idcpaa01D.getMatesp());
		if (vwTabele.getChaveAlfaAcesso() != idcpaa01D.getSenesp()) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}
		sislac01.niveis = dvetabVw.getDescricaoElem();
		if (!(UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 13 - 1, 1).equals("7"))) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}
		if (!(UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("1") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("3") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("5") || UtilBean.subStr(sislac01.niveis, 30 + 11 - 1, 1).equals("7"))) {
			idcta000.enviarMensagem("senesp", "");
			return;
		}

		if (vwDidhis.registrosProcessados() == 0) {
			idcta000.enviarMensagem("matesp", "");
			return;
		}
	}

	private boolean telas(Idcta001 pidcta001, Idcta002 pidcta002, Idctha01 pidctha01) throws Exception {

		idcta001.setMensagemSaida("TECLE PF-5 PARA ATUALIZAR");
		// Par�grafo: ry1()

		if (!idcta001.getEnviada()) {
			sessao.setAtributo("IDCPAA01", this);
			result.include("idcta001", idcta001);
			idcta001.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
			return false;
		}
		if (pidcta001 != null) {
			idcta001.receberTela(false, result);
		}
		if (idcta001.getIcodsex() == 2 && idcta001.getIestciv() == 2) {
			while (viu1.pesquisaNomeIdentNomeMaeDataNasc(idcta001.getInomant(), idcta001.getInommae(), idcla001.iDatnas)) {
				if (viu1.getNumeroRg() != idcta001.getIregger()) {
					idcta001.enviarMensagem("iNomant", "REGISTRO CADASTRADO COM RG:1:" + viu1.getNumeroRg());
					return false;
				}

			}
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_ajuda)) {
			// Par�grafo: ry2()

			if (!idcta002.getEnviada()) {
				sessao.setAtributo("IDCPAA01", this);
				result.include("idcta002", idcta002);
				idcta002.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (pidcta002 != null) {
				idcta002.receberTela(false, result);
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_pf2)) {
				return true;
			}
			if (vwDidcad.getDataDocumento() > 0 && vwDidcad.getNumeroVia() > 0 && !idcta002.getChave().equals("I")) {
				if (vwDidcad.getDataDocumento() > idcla001.iDatdoc) {
					idcta002.enviarMensagem("ddoc", "DATA INFERIOR A JA CADASTRADA");
					return false;
				}
			}
			if (!UtilBean.funcao.equals(UtilBean.ctt_confirma)) {
				idcta002.enviarMensagem(null, "TECLE PF5 PARA ATUALIZAR");
				return false;
			}

			if (!idctha01.getEnviada()) {
				sessao.setAtributo("IDCPAA01", this);
				result.include("idctha01", idctha01);
				idctha01.enviarTela(false, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			if (pidctha01 != null) {
				idctha01.receberTela(false, result);
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
				if (idcta002.getChave().equals("A")) {
					idctha01.setMensagemSaida("ALTERACAO NAO FOI EXECUTADA");
				} else {
					idctha01.setMensagemSaida("INCLUSAO NAO FOI EXECUTADA");
				}
				return true;
			}
			if (UtilBean.funcao.equals(UtilBean.ctt_anterior)) {
				return false;
			}
			funcoes.tabsatu(sessao);
			if (!funcoes.camret.equals("")) {
				idcta000.enviarMensagem(funcoes.camret, "");
				// sessao.setAtributo ("IDCPAA01", this);
				result.include("idcta000", idcta000);
				idcta000.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
				return false;
			}
			return false;
		}
		if (UtilBean.funcao.equals(UtilBean.ctt_retorna)) {
			return false;
		}
		return true;
	}

	private void uf() {
		uf = "";
		dvetabVw.pesq = UtilBean.moveSubstring(dvetabVw.pesq, 0, 3, "N", 001);
		dvetabVw.consultaTabele(1, (long) codpesq);

		uf = dvetabVw.getChaveAlfaAcesso();

	}

	private void restaurarEstados(Idcpaa01B pidcpaa01B, Idcpaa01C pidcpaa01C, Idcpaa01D pidcpaa01D, Idcta000 pidcta000, Idcta000B pidcta000B, Idcta001 pidcta001, Idcta002 pidcta002, Idctha01 pidctha01) {
		this.idcpaa01Anterior = (Idcpaa01) sessao.getAtributo("IDCPAA01");
		if (pidcpaa01B != null) {
			idcpaa01B = pidcpaa01B;
		} else {
			idcpaa01B = this.idcpaa01Anterior.idcpaa01B;
		}
		idcpaa01B.setSessao(sessao);
		if (pidcpaa01C != null) {
			idcpaa01C = pidcpaa01C;
		} else {
			idcpaa01C = this.idcpaa01Anterior.idcpaa01C;
		}
		idcpaa01C.setSessao(sessao);
		if (pidcpaa01D != null) {
			idcpaa01D = pidcpaa01D;
		} else {
			idcpaa01D = this.idcpaa01Anterior.idcpaa01D;
		}
		idcpaa01D.setSessao(sessao);
		if (pidcta000 != null) {
			idcta000 = pidcta000;
		} else {
			idcta000 = this.idcpaa01Anterior.idcta000;
		}
		idcta000.setSessao(sessao);
		if (pidcta000B != null) {
			idcta000B = pidcta000B;
		} else {
			idcta000B = this.idcpaa01Anterior.idcta000B;
		}
		idcta000B.setSessao(sessao);
		if (pidcta001 != null) {
			idcta001 = pidcta001;
		} else {
			idcta001 = this.idcpaa01Anterior.idcta001;
		}
		idcta001.setSessao(sessao);
		if (pidcta002 != null) {
			idcta002 = pidcta002;
		} else {
			idcta002 = this.idcpaa01Anterior.idcta002;
		}
		idcta002.setSessao(sessao);
		if (pidctha01 != null) {
			idctha01 = pidctha01;
		} else {
			idctha01 = this.idcpaa01Anterior.idctha01;
		}
		idctha01.setSessao(sessao);
		this.faseproc = this.idcpaa01Anterior.faseproc;
	}
}
